# 1.列表的定义
# 直接使用[]
list1 = [1, 2, '3']
print(type(list1))  # list
list2 = [4, 5, 6, [7, 8], (9, 10)]  # 可以存入多种类型的数据，包括组合数据
print(type(list2))
# 使用list函数
list3 = list('Hello World')  # 可迭代数据，比如字符串、列表、元组、集合
print(list3)
a = (1, 2, 3)
print(type(a))  # tuple 元组
list4 = list(a)  # 构造列表，转换数据类型
print(type(list4))  # list
print(list({2, 3, 5}))

# 2.列表的索引，访问列表元素
b = [1, 3, 5, 7, 9]
# 正向索引的范围：0 ~ length - 1
print(b[0])  # 通过正向索引访问
# 反向索引的范围：-length ~ -1
print(b[-len(b)])  # 通过反向索引访问

# 切片，得到一个子列表
# 左边数据（包含）的索引 : 右边数据（不包含）的索引
# [start, end)
print(b[0 : 2])  # [0, 1]
print(b[-5 : -3])  # [-5, -4]

c = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(c[0 : 10])  # 所有元素[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# [开始（包含） : 结束（不包含） : 步长]
print(c[0 : 10 : 2])  # [0, 2, 4, 6, 8]
# 默认值：起始是0，结束是长度，步长是1
print(c[ :  : ])  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

# 遍历
# 遍历索引
print('==================================')
for i in range(len(c)):
    print(f'索引:{i}, 元素:{c[i]}')

# 遍历元素
print('==================================')
d = ['a', 'b', 'c', '1', '2', '3']
for temp in d:
    print(temp)